!(function (e, n) {
    'object' == typeof exports && 'undefined' != typeof module
        ? (module.exports = n())
        : 'function' == typeof define && define.amd
            ? define(n)
            : ((e = e || self).uni = n());
})(this, function () {
    'hook strict';
    try {
        var e = {};
        Object.defineProperty(e, 'passive', {
            get: function () {
                !0;
            },
        }),
            window.addEventListener('test-passive', null, e);
    } catch (e) {}
    var n = Object.prototype.hasOwnProperty;

    function i(e, i) {
        return n.call(e, i);
    }
    var t = [];

    function r() {
        return window.__dcloud_weex_postMessage || window.__dcloud_weex_;
    }
    var o = function (e, n) {
            var i = {
                options: {
                    timestamp: +new Date(),
                },
                name: e,
                arg: n,
            };
            if (r()) {
                if ('postMessage' === e) {
                    var o = {
                        data: [n],
                    };
                    return window.__dcloud_weex_postMessage
                        ? window.__dcloud_weex_postMessage(o)
                        : window.__dcloud_weex_.postMessage(JSON.stringify(o));
                }
                var a = {
                    type: 'WEB_INVOKE_APPSERVICE',
                    args: {
                        data: i,
                        webviewIds: t,
                    },
                };
                window.__dcloud_weex_postMessage
                    ? window.__dcloud_weex_postMessageToService(a)
                    : window.__dcloud_weex_.postMessageToService(JSON.stringify(a));
            }
            if (!window.plus)
                return window.parent.postMessage(
                    {
                        type: 'WEB_INVOKE_APPSERVICE',
                        data: i,
                        pageId: '',
                    },
                    '*'
                );
            if (0 === t.length) {
                var d = plus.webview.currentWebview();
                if (!d) throw new Error('plus.webview.currentWebview() is undefined');
                var s = d.parent(),
                    w = '';
                (w = s ? s.id : d.id), t.push(w);
            }
            if (plus.webview.getWebviewById('__uniapp__service'))
                plus.webview.postMessageToUniNView(
                    {
                        type: 'WEB_INVOKE_APPSERVICE',
                        args: {
                            data: i,
                            webviewIds: t,
                        },
                    },
                    '__uniapp__service'
                );
            else {
                var u = JSON.stringify(i);
                plus.webview
                    .getLaunchWebview()
                    .evalJS(
                        'UniPlusBridge.subscribeHandler("'
                            .concat('WEB_INVOKE_APPSERVICE', '",')
                            .concat(u, ',')
                            .concat(JSON.stringify(t), ');')
                    );
            }
        },
        a = {
            navigateTo: function () {
                var e =
                        arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.url;
                o('navigateTo', {
                    url: encodeURI(n),
                });
            },
            navigateBack: function () {
                var e =
                        arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.delta;
                o('navigateBack', {
                    delta: parseInt(n) || 1,
                });
            },
            switchTab: function () {
                var e =
                        arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.url;
                o('switchTab', {
                    url: encodeURI(n),
                });
            },
            reLaunch: function () {
                var e =
                        arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.url;
                o('reLaunch', {
                    url: encodeURI(n),
                });
            },
            redirectTo: function () {
                var e =
                        arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.url;
                o('redirectTo', {
                    url: encodeURI(n),
                });
            },
            getEnv: function (e) {
                r()
                    ? e({
                        nvue: !0,
                    })
                    : window.plus
                        ? e({
                            plus: !0,
                        })
                        : e({
                            h5: !0,
                        });
            },
            postMessage: function () {
                var e =
                    arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                o('postMessage', e.data || {});
            },
        },
        d = /uni-app/i.test(navigator.userAgent),
        s = /Html5Plus/i.test(navigator.userAgent),
        w = /complete|loaded|interactive/;
    var u =
        window.my &&
        navigator.userAgent.indexOf(
            ['t', 'n', 'e', 'i', 'l', 'C', 'y', 'a', 'p', 'i', 'l', 'A']
                .reverse()
                .join('')
        ) > -1;
    var g =
        window.swan && window.swan.webView && /swan/i.test(navigator.userAgent);
    var v =
        window.qq &&
        window.qq.miniProgram &&
        /QQ/i.test(navigator.userAgent) &&
        /miniProgram/i.test(navigator.userAgent);
    var c =
        window.tt &&
        window.tt.miniProgram &&
        /toutiaomicroapp/i.test(navigator.userAgent);
    var m =
        window.wx &&
        window.wx.miniProgram &&
        /micromessenger/i.test(navigator.userAgent) &&
        /miniProgram/i.test(navigator.userAgent);
    var p = window.qa && /quickapp/i.test(navigator.userAgent);
    var f =
        window.ks &&
        window.ks.miniProgram &&
        /micromessenger/i.test(navigator.userAgent) &&
        /miniProgram/i.test(navigator.userAgent);
    var l =
        window.tt &&
        window.tt.miniProgram &&
        /Lark|Feishu/i.test(navigator.userAgent);
    var _ =
        window.jd &&
        window.jd.miniProgram &&
        /micromessenger/i.test(navigator.userAgent) &&
        /miniProgram/i.test(navigator.userAgent);
    var E =
        window.xhs &&
        window.xhs.miniProgram &&
        /xhsminiapp/i.test(navigator.userAgent);
    for (
        var h,
            P = function () {
                (window.UniAppJSBridge = !0),
                    document.dispatchEvent(
                        new CustomEvent('UniAppJSBridgeReady', {
                            bubbles: !0,
                            cancelable: !0,
                        })
                    );
            },
            b = [
                function (e) {
                    if (d || s)
                        return (
                            window.__dcloud_weex_postMessage || window.__dcloud_weex_
                                ? document.addEventListener('DOMContentLoaded', e)
                                : window.plus && w.test(document.readyState)
                                    ? setTimeout(e, 0)
                                    : document.addEventListener('plusready', e),
                                a
                        );
                },
                function (e) {
                    if (m)
                        return (
                            window.WeixinJSBridge && window.WeixinJSBridge.invoke
                                ? setTimeout(e, 0)
                                : document.addEventListener('WeixinJSBridgeReady', e),
                                window.wx.miniProgram
                        );
                },
                function (e) {
                    if (v)
                        return (
                            window.QQJSBridge && window.QQJSBridge.invoke
                                ? setTimeout(e, 0)
                                : document.addEventListener('QQJSBridgeReady', e),
                                window.qq.miniProgram
                        );
                },
                function (e) {
                    if (u) {
                        document.addEventListener('DOMContentLoaded', e);
                        var n = window.my;
                        return {
                            navigateTo: n.navigateTo,
                            navigateBack: n.navigateBack,
                            switchTab: n.switchTab,
                            reLaunch: n.reLaunch,
                            redirectTo: n.redirectTo,
                            postMessage: n.postMessage,
                            getEnv: n.getEnv,
                        };
                    }
                },
                function (e) {
                    if (g)
                        return (
                            document.addEventListener('DOMContentLoaded', e),
                                window.swan.webView
                        );
                },
                function (e) {
                    if (c)
                        return (
                            document.addEventListener('DOMContentLoaded', e),
                                window.tt.miniProgram
                        );
                },
                function (e) {
                    if (p) {
                        window.QaJSBridge && window.QaJSBridge.invoke
                            ? setTimeout(e, 0)
                            : document.addEventListener('QaJSBridgeReady', e);
                        var n = window.qa;
                        return {
                            navigateTo: n.navigateTo,
                            navigateBack: n.navigateBack,
                            switchTab: n.switchTab,
                            reLaunch: n.reLaunch,
                            redirectTo: n.redirectTo,
                            postMessage: n.postMessage,
                            getEnv: n.getEnv,
                        };
                    }
                },
                function (e) {
                    if (f)
                        return (
                            window.WeixinJSBridge && window.WeixinJSBridge.invoke
                                ? setTimeout(e, 0)
                                : document.addEventListener('WeixinJSBridgeReady', e),
                                window.ks.miniProgram
                        );
                },
                function (e) {
                    if (l)
                        return (
                            document.addEventListener('DOMContentLoaded', e),
                                window.tt.miniProgram
                        );
                },
                function (e) {
                    if (_)
                        return (
                            window.JDJSBridgeReady && window.JDJSBridgeReady.invoke
                                ? setTimeout(e, 0)
                                : document.addEventListener('JDJSBridgeReady', e),
                                window.jd.miniProgram
                        );
                },
                function (e) {
                    if (E) return window.xhs.miniProgram;
                },
                function (e) {
                    return document.addEventListener('DOMContentLoaded', e), a;
                },
            ],
            y = 0;
        y < b.length && !(h = b[y](P));
        y++
    );
    h || (h = {});
    var B = 'undefined' != typeof uni ? uni : {};
    if (!B.navigateTo) for (var S in h) i(h, S) && (B[S] = h[S]);
    return (B.webView = h), B;
});